package com.study.行为型模式.备忘录模式.实例一;

public class Client {

    public static void main(String[] args) {

        Originator originator = new Originator();
        Caretaker caretaker = new Caretaker();

        String s1 = "状态#1:  攻击力100";
        originator.setState(s1);
        //保存了当前的状态
        caretaker.add(originator.getState(),originator.saveStateMemento());

        String s2 = "状态#2：  攻击力80";
        originator.setState(s2);
        caretaker.add(originator.getState(),originator.saveStateMemento());

        String s3 = "状态#3：  攻击力50";
        originator.setState(s3);
        caretaker.add(originator.getState(),originator.saveStateMemento());

        //希望恢复到状态1
        System.out.println("当前的状态是："+originator.getState());
        //caretaker.get(s1)从caretaker中得到状态1，  然后通过getStateFromMemento来恢复
        originator.getStateFromMemento(caretaker.get(s1));
        System.out.println("恢复后的状态："+originator.getState());
    }

    //备忘录模式角色分析
    //1、originator：对象（需要保存状态的对象）
    //2、Memento：备忘录对象，负责保存originator对象的状态
    //3、caretaker：守护者对象，负责保存多个备忘录对象，使用集合管理，提高效率


}
